package com.fsp.service;

import com.fsp.pojo.Superman;

import java.util.List;

/**
 * @author fushengping
 * @interface SupermanService
 * @description 使用三种遍历进行全量查询子节点
 * @date 2021/11/30 9:36
 */
public interface SupermanService {
    //法1：递归遍历(递归的时候容易栈溢出)
    /**
     * 递归主要是层级查询，先查根节点，用父节点的id来不断查询子节点
     * @return
     */
    List<Superman> getSupermanAll1();

    /**
     * 法二：循环读取
     * 先进行全量查询，全量循环之后，再根据父子节点的id关联进行匹配设置
     * @return
     */
    List<Superman> getSupermanAll2();

    /**
     * 法3：map集合进行匹配读取设置
     * @return
     */
    List<Superman> getSupermanAll3();

    /**
     * 根据pid分步查询（实际开发最常用）
     * @param pid
     * @return
     */
    List<Superman> getSupermanByPid(Integer pid);
}
